package com.itheima.service.impl;



import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.common.result.PageResult;
import com.itheima.common.result.Result;
import com.itheima.dto.YddLinkDTO;
import com.itheima.dto.YddLinkPageQueryDTO;
import com.itheima.mapper.YddLinkMapper;
import com.itheima.pojo.YddLink;
import com.itheima.service.YddLinkService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class YddLinkServiceImpl extends ServiceImpl<YddLinkMapper, YddLink> implements YddLinkService {

    @Autowired
    private YddLinkMapper yddLinkMapper;

    @Override
    public Result<PageResult> pageYddLink(YddLinkPageQueryDTO dto) {
        if (dto.getPage() == null) {
            dto.setPage(1);
        }
        if (dto.getLimit() == null) {
            dto.setLimit(10);
        }
        //得到分类名称==图片或者文字
        String type = dto.getType();
        //开始分页
        //===============
        PageHelper.startPage(dto.getPage(), dto.getLimit());
        //1.根据条件查询标签列表调用mapper
        Page<YddLink> page = yddLinkMapper.pageYddLink(dto);
        long total = page.getTotal();
        int pages = page.getPages();
        List<YddLink> yddLinkList = page.getResult();
        //封装数据
        PageResult pageResult = new PageResult();
        pageResult.setData(yddLinkList);
        pageResult.setPageSize(dto.getLimit());
        pageResult.setTotalPages(pages);
        //根据不同分类名称得到该类型的数量
        pageResult.setCount(total);
        //当前页码
        pageResult.setCurrenPage(dto.getPage());
        return Result.success(pageResult);
    }

    @Override
    public Result addYddLink(YddLinkDTO dto) {
        if (dto.getDes() == null) {
            return Result.error("链接描述不能为空");
        }
        if (dto.getUrl() == null) {
            return Result.error("地址不能为空");
        }
        YddLink yddLink = new YddLink();
        //赋值给yddyddlink
        BeanUtils.copyProperties(dto, yddLink);
        yddLink.setDefaultData("1");
        yddLinkMapper.insert(yddLink);
        return Result.success();

    }

    @Override
    public Result deleteById(Integer id) {
        if (id==null){
            return Result.error("id不存在");
        }
        //得到需要删除的对象
        YddLink yddLink = yddLinkMapper.selectById(id);
        yddLink.setDefaultData("");
        yddLinkMapper.updateById(yddLink);
        return Result.success();

    }
}